"""
TTS实现基类
定义TTS实现的标准接口
"""

from abc import ABC, abstractmethod
from typing import Tuple, Dict, Any

from src.constants.return_codes import BaseCodeEnum


class TTSImplementation(ABC):
    """
    TTS实现的抽象基类
    定义所有TTS实现必须遵循的接口规范
    """
    
    @abstractmethod
    def text_to_speech(self, text: str, voice: str = None, **kwargs) -> Tuple[BaseCodeEnum, Dict[str, Any]]:
        """
        将文本转换为语音
        
        Args:
            text: 要转换的文本内容
            voice: 音色标识
            **kwargs: 扩展参数
            
        Returns:
            Tuple[int, str, Dict[str, Any]]: (状态码, 音频文件路径, 结果信息)
            - 状态码: 200表示成功，其他表示错误
            - 音频文件路径: 生成的音频文件完整路径
            - 结果信息: 包含转换详情和元数据的字典
        """
        pass
    
    @abstractmethod
    def get_supported_voices(self) -> Dict[str, str]:
        """
        获取支持的音色列表
        
        Returns:
            Dict[str, str]: 音色标识到音色名称的映射
        """
        pass